package com.example.dllo.moondog.login;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.easemob.EMCallBack;
import com.easemob.chat.EMChat;
import com.easemob.chat.EMChatManager;
import com.easemob.chat.EMGroupManager;
import com.example.dllo.moondog.R;
import com.example.dllo.moondog.base.BaseActivity;
import com.example.dllo.moondog.main.MainActivity;

/**
 * Created by dllo on 16/3/3.
 */
public class LoginActivity extends BaseActivity implements View.OnClickListener {
    private EditText etUsername,etPassword;
    private Button btnLogin,btnRegister;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        etUsername = (EditText) findViewById(R.id.et_activity_login_username);
        etPassword = (EditText) findViewById(R.id.et_activity_login_password);
        btnLogin = (Button) findViewById(R.id.btn_activity_login_login);
        btnRegister = (Button) findViewById(R.id.btn_activity_login_register);

        //设置自动登录false是关闭
        EMChat.getInstance().setAutoLogin(false);

        //从本地数据库加载群组到内存的操作，如果你的应用中有群组，请加上这句话（要求在每次进入应用的时候调用）
//        EMGroupManager.getInstance().loadAllGroups();

        //从本地数据库加载聊天记录到内存的操作(强烈建议在每次进入应用的时候调用)
        // 以上两个方法是为了保证进入主页面后本地会话和群组都load完毕。
        // 另外如果登陆过，app长期在后台再进的时候也可能会导致加载到内存的群组和会话为空，
        // 可以在主页面的oncreate里也加上这两句代码，当然，更好的办法应该是放在程序的开屏页
//        EMChatManager.getInstance().loadAllConversations();

        // 如果用户名改变，清空密码
        etUsername.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                etPassword.setText(null);
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

        btnLogin.setOnClickListener(this);
        btnRegister.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_activity_login_login :
                loginMethod();
                break;
            case R.id.btn_activity_login_register :
                Intent intent1 = new Intent(this,RegisterActivity.class);
                startActivity(intent1);
                break;
        }
    }

    private void loginMethod() {
        String username = etUsername.getText().toString().trim();
        String password = etPassword.getText().toString().trim();
        if (username == null || username.length() == 0) {
            showToast("用户名不能为空");
            return;
        }
        if (password == null || password.length() == 0) {
            showToast("密码不能为空");
            return;
        }


        EMChatManager.getInstance().login(username, password, new EMCallBack() {
            @Override
            public void onSuccess() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        EMGroupManager.getInstance().loadAllGroups();
                        EMChatManager.getInstance().loadAllConversations();
                        Log.d("main", "登陆聊天服务器成功！");

                        Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                        startActivity(intent);
                    }
                });
            }

            @Override
            public void onError(int i, String s) {
                Log.d("main", "登陆聊天服务器失败！");
            }

            @Override
            public void onProgress(int i, String s) {

            }
        });

        //退出登录
       // EMChatManager.getInstance().logout();//此方法为同步方法

    }
}
